<?php

// test/unit/CodigoQrTest.php
require_once dirname(__FILE__).'/../bootstrap/unit.php'; 
       
// Colocando la cantidad de pruebas unitarias a realizar
$t = new lime_test(2);

// Valores de Prueba del Paquete

    // Valores de prueba del cliente
	     $IDCliente = 1;
		 
    // Valores de prueba del Empleado Asignado para la recoleccion
	     $EmpId = 3;
		 $EmpNombre='Marcy';
		 $EmpApellido='Gonzalez';
		 	 
		
	// Valores de prueba de la solicitud
		 $IDSolicitud = 1;
		 $solEstado = 'RECOLECTADA';// estatus: PENDIENTE POR RECOLECCION -> RECOLECTADA -> ENTREGADA
		 $fechaSolicitud = '30/09/2011';
		
    // Valores de Prueba para la libreta de Entrega
		$Lenid_LE = 1;
		$LenAvecalle = 'Ayacucho';
		$LenResidcasa = 'Say park II';
		$LenAptonumcasa = '61';
		$LenUrbanizacion = 'la paz';
		$Lenciudad = 'caracas';
		$Lenpais = 'Venezuela';
		$LencodigoPostal = '212';
		$LenLatitud = 10.4827949;
		$LenLongitud = -66.94369999999998;
		$LenNomdireccion = 'apartamentoSayParkII';
			
	// Valores de Prueba para la libreta de recoleccion	
		$Lreid_LE = 1;
		$LreAvecalle = 'Avenida 93';
		$LreResidcasa = 'Esmeralda';
		$LreAptonumcasa = 'B-17';
		$LreUrbanizacion = 'Bolivar';
		$Lreciudad = 'Maracaibo';
		$Lrepais = 'Venezuela';
		$LrecodigoPostal = '212';
		$LreLatitud = 10.64504;
		$LreLongitud = -71.63715400000001;
		$LreNomdireccion = 'direccionDeRecoleccion';

// Instanciando Objetos de la clase LibretaEntrega		
 $LibretaEntrega = new LibretaEntrega();
		$LibretaEntrega->setLenId($Lenid_LE);
		$LibretaEntrega->setLenAvecalle($LenAvecalle);
		$LibretaEntrega->setLenResidcasa($LenResidcasa);
		$LibretaEntrega->setLenAptonumcasa($LenAptonumcasa);
		$LibretaEntrega->setLenUrbanizacion($LenUrbanizacion);
		$LibretaEntrega->setLenCiudad($Lenciudad);
		$LibretaEntrega->setLenPais($Lenpais);
		$LibretaEntrega->setLenCodpostal($LencodigoPostal);
		$LibretaEntrega->setLenLatitud($LenLatitud);
		$LibretaEntrega->setLenLongitud($LenLongitud);
		$LibretaEntrega->setLenNomdireccion($LenNomdireccion);
		$LibretaEntrega->setLenCliente($IDCliente);
		
// Instanciando Objetos de la clase LibretaEntrega		
 $LibretaRecoleccion = new LibretaRecoleccion();
		$LibretaRecoleccion->setLreId($Lreid_LE);
		$LibretaRecoleccion->setLreAvecalle($LreAvecalle);
		$LibretaRecoleccion->setLreResidcasa($LreResidcasa);
		$LibretaRecoleccion->setLreAptonumcasa($LreAptonumcasa);
		$LibretaRecoleccion->setLreUrbanizacion($LreUrbanizacion);
		$LibretaRecoleccion->setLreCiudad($Lreciudad);
		$LibretaRecoleccion->setLrePais($Lrepais);
		$LibretaRecoleccion->setLreCodpostal($LrecodigoPostal);
		$LibretaRecoleccion->setLreLatitud($LreLatitud);
		$LibretaRecoleccion->setLreLongitud($LreLongitud);
		$LibretaRecoleccion->setLreNomdireccion($LreNomdireccion);
		$LibretaRecoleccion->setLreCliente($IDCliente);		

// Instanciando Objetos de la clase Empleado
   $empleado = new Empleado();
	    $empleado->setEmpId($EmpId);
		$empleado->setEmpNombre($EmpNombre);
		$empleado->setEmpApellido($EmpApellido);
		
// Instanciando Objetos de la clase Solicitud
  $solicitud = new Solicitud();
       $solicitud->setSolId($IDSolicitud);
	   $solicitud->setSolEstado($solEstado);
	   //$solicitud->setSolFecha($fechaSolicitud);
	   $solicitud->setSolLibretarecoleccion($LibretaRecoleccion->getLreId());
	   $solicitud->setSolLibretaentrega($LibretaEntrega->getLenId());
	   $solicitud->setSolEmprecolector($empleado->getEmpId());
	   $solicitud->setSolCliente($IDCliente);
		
// Simple comentario para dar inicio a las pruebas unitarias
$t->comment('Iniciando las pruebas');

// Iniciando las pruebas unitarias 

   /* le Pasamos los valores de prueba a la funcion VerificarData()
	*
	*     Las funciones devuelven True en el caso que los datos esten correctos
	*     sino devolvera False en el caso que los datos no cumplan con las reglas
	*     de negocio del sistema, la funcion OK verifica si la prueba Unitaria fue exitosa
	*
	*/ 
  $t->ok($RespuestaEntrega=LibretaentregaPeer::VerificarEnvio($LibretaEntrega->getLenLatitud(),$LibretaEntrega->getLenLongitud()));
  $t->ok($RespuestaRecoleccion=LibretarecoleccionPeer::VerificarRecoleccion($LibretaRecoleccion->getLreLatitud(),$LibretaRecoleccion->getLreLongitud(),$solicitud->getSolEmprecolector()));
	
	/*
	 *     Prueba Unitaria cambiar el estado de una SOLICITUD
	 *                 solo si la respuesta de las anteriores 
	 *                 pruebas unitarias resultan ser "TRUE"    
	 */
	 if (($RespuestaEntrega==true) && ($RespuestaRecoleccion==true)){
		   // seteamos el valor del estado de la solicitud predefinido en la funcion setEstado() como ENTREGADO
		      $solicitud->setSolEstado(SolicitudPeer::setSolicitudEntrega());
			  $t->pass('La prueba fue exitosa, El Paquete paso a ser ENTREGADO por '.$empleado->getEmpNombre().' '.$empleado->getEmpApellido());
		 }
		 else{
			   $t->fail('La prueba Fallo, La solicitud sigue en PENDIENTE POR SER ENTREGADA');
			 }
   



